首先,要建立一個具有這些證明的系統,我們需要專注於以下幾個主要組件和步驟:
需要實現的部分:
-
完整的 EVM
建立一個可以執行所有 Ethereum 操作的 EVM,這包括所有的 EVM opcodes,並且能夠處理各種不同的交易和合約,這我們在前半部分已經做完了。
-
證明系統
建立一個可以生成和驗證證明的系統,這包括 State Proof 和 EVM Proof。這個系統需要能夠確保所有的交易和操作都是合法和有效的。
-
合約和交易的處理
需要一個系統來處理和執行所有在 EVM 上的合約和交易,並且確保它們都能夠正確無誤地執行。
需要介紹的部分:
-
如何生成和驗證證明
詳細介紹證明是如何生成的,以及如何確保這些證明的有效性和正確性。
-
系統的安全性
介紹系統如何防止非法和惡意的行為,以及如何確保系統的安全性和可靠性。
-
系統的效率和擴展性
介紹系統如何處理大量的交易,以及如何提高系統的效率和擴展性。
ZKEVM Proof 分類:
ZKEVM Proof 主要分為兩類,State Proof 和 EVM Proof。
1. State Proof
- 主要用於確保所有的 State、Memory、和 Stack Opcode 是正確的。
- 它不會直接檢查讀寫位置是否正確,而是允許 Prover 在 EVM Proof 中證明讀寫位置的合法性。
2. EVM Proof
- 主要檢查所有的 opcodes 是否都在正確的時間被正確執行。
- 它將確保 opcodes 的合法性,並與 State Proof 一同確保所有的操作都是正確和有效的。
透過這兩種 Proof,我們可以全面保障 Ethereum 虛擬機的正確性和安全性,並且能夠有效地擴展其處理能力。
Circuit as a Lookup Table
在halo2框架之中,查找功能的彈性尤為突出,它允許設計師將任何能夠被轉換為表達式的結構配置為查找目標。這意味著不同的電路可以對固定的數據集或條件進行操作,並且可以透過查找參數將其結果與其他電路相關聯。
此外,使用電路作為查找表的動機在於其高效性和對昂貴運算的處理方式。例如,Ethereum虛擬機 (EVM) 中的某些操作可能不適合直接在主電路中執行,因為它們可能涉及複雜的加密運算或隨機數據訪問。為了解決這個問題,我們可以利用查找表格的策略:將這些昂貴的操作分隔到單一目的的電路中,並且利用查找功能確保其結果可以被主電路正確讀取和驗證。
主要會做到幾件事
-
查找參數 (Lookup Arguments): 當某些操作在電路中變得過於昂貴或複雜時,該電路可以通過查找參數將這些操作的計算"外包"給其他電路。
-
表格 (Tables): 這些電路生成和驗證的數據結構,它們用於存儲和查詢資訊。
再來幾天會開始介紹這些東西要如何實現,明天會教大家什麼是 bus mapping
參考資料
https://hackmd.io/bF-_y4OVQMyBHQMFG7tYpA